console.log(1);
new Promise(function(resolve, reject) {
  console.log(2);
  resolve()
})
.then(() => {             //微任务，会先跳过
  console.log(3);
  setTimeout(() => {
    console.log(4);
  }, 0)
})
setTimeout(() => {     //宏任务，放进队列然后就可以跳过了，它先放的，所以后面先执行它
  console.log(5);
  setTimeout(() => {
    console.log(6);
  }, 0)
}, 0)
console.log(7);          

/* 1,2,7,3,5,4,6 */